﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.text.html;
using iTextSharp.text.html.simpleparser;
using System.IO;


public partial class frmPrestacionDeServicios : System.Web.UI.Page
{
    
    protected void Page_Load(object sender, EventArgs e)
    {
        Label9.Text = "2";

        if (ListBox1.Text.Equals(""))
        {
            ListBox1.Items.Add("");
            ListBox1.Items.Add("Seleccione un Presupuesto");
        }


        this.DSOrdenPrestacion.DataSourceMode = SqlDataSourceMode.DataReader;
        SqlDataReader datos = (SqlDataReader)this.DSOrdenPrestacion.Select(DataSourceSelectArguments.Empty);

        while (datos.Read())
        {
            String dato = datos["nroOrdenPrestacionServicio"].ToString();
            LNroOrden.Text = (Convert.ToInt16(dato) + 1).ToString();
        }


        LabelDate.Text = DateTime.Now.ToString("dd/MM/yyyy"); 
        




    }
    
    protected void Button2_Click(object sender, EventArgs e)
    {


        if (Button2.Text.Equals("Mostrar Presupuestos"))
        {
            
            GridView1.Visible = true;
            Button2.Text = "Ocultar Listado";
            ListBox1.Visible = true;
            Button1.Visible = true;
            ListBox1.Items.Add("");
            ListBox1.Items.Add("Seleccione un Presupuesto");
            
        }

        else
        {

            if (Label11.Text.Equals("nuevo"))
            {
                
                GridView1.Visible = false;
                Button2.Text = "Mostrar Presupuestos";
                ListBox1.Visible = true;
                Button1.Visible = true;
   
            }
            else
            {

               
                GridView1.Visible = false;
                Button2.Text = "Mostrar Presupuestos";
                ListBox1.Items.Clear();
                ListBox1.Visible = false;
                Button1.Visible = false;
            
            }

        }
    }
    protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
    {
        String cuit;
        String empresa;
        String detalle;
        String presup;
        String importe;
        String fechaPresup;
        String fechaValidez;
        String fechaAprobacion;
        String estado;

        ListBox1.Items.Clear();
        Label11.Text = "nuevo";

        this.Label1.Text = this.GridView1.Rows[this.GridView1.SelectedIndex].Cells[2].Text;

        
        this.DSPresupuesto2.SelectParameters["presupuesto"].DefaultValue = this.Label1.Text;
        this.DSPresupuesto2.DataSourceMode = SqlDataSourceMode.DataReader;
        SqlDataReader datos = (SqlDataReader)this.DSPresupuesto2.Select(DataSourceSelectArguments.Empty);

        if (datos.Read())
        {
             cuit = datos["cuit"].ToString();
             empresa = datos["nombreComercial"].ToString();
             detalle = datos["detalle"].ToString();
             presup = datos["nroPresupuesto"].ToString();
             estado = datos["idEstado"].ToString();
             importe = datos["importe"].ToString();
             fechaPresup = datos["fechaPresupuesto"].ToString();
             fechaValidez = datos["fechaValidez"].ToString();
             fechaAprobacion = datos["fechaAprobacion"].ToString();

            ListBox1.Items.Add("Presupuesto Nro:  " + presup);
            ListBox1.Items.Add("Estado Presupuesto:  " + estado);
            ListBox1.Items.Add("Numero de CUIT:  "+cuit);
            ListBox1.Items.Add("Empresa:  " + empresa);
            ListBox1.Items.Add("Detalle de Servicios:  "+detalle);
            ListBox1.Items.Add("Importe Total: $ "+importe);
            ListBox1.Items.Add("Fecha de Presupuesto: "+fechaPresup);
            ListBox1.Items.Add("Fecha de Aprobacion: "+fechaAprobacion);
            ListBox1.Items.Add("Validez: " + fechaValidez);

            Label1.Text = presup;
            Label2.Text = empresa;
            Label3.Text = cuit;
            Label4.Text = detalle;
            Label5.Text = importe;
            Label6.Text = fechaPresup;
            Label7.Text = fechaValidez;
            Label8.Text = fechaAprobacion;

            TextBox1.Text = "nuevo";

            Button1.Visible = true;
        }



       


    }
    protected void Button1_Click(object sender, EventArgs e)
    {

        if (DropDownList1.SelectedIndex == 0)
        {
            Label12.Text = "Debe especificar Estado";
        }

        else
        {
            string imagepath = Server.MapPath("Img");

            this.DSOrdenPrestacion.InsertParameters["fechaOrden"].DefaultValue = DateTime.Now.ToString("dd/MM/yyyy");
            this.DSOrdenPrestacion.InsertParameters["fechaServicio"].DefaultValue = DateTime.Now.ToString("dd/MM/yyyy");
            this.DSOrdenPrestacion.InsertParameters["idEstado"].DefaultValue = "2";
            this.DSOrdenPrestacion.InsertParameters["nroPresupuesto"].DefaultValue = this.Label1.Text;
            this.DSOrdenPrestacion.Insert();

            FileStream fs = new FileStream(Server.MapPath("~/") + "orden" + LNroOrden.Text + ".pdf", FileMode.Create, FileAccess.Write, FileShare.None);
            Rectangle rec3 = new Rectangle(PageSize.A4);
            Document doc = new Document(rec3, 10, 10, 10, 10);
            PdfWriter writer = PdfWriter.GetInstance(doc, fs);
            iTextSharp.text.Font fontTitle = FontFactory.GetFont("Arial", 18, iTextSharp.text.Font.BOLD, BaseColor.BLACK);
            iTextSharp.text.Font fontHead = FontFactory.GetFont("Arial", 16, iTextSharp.text.Font.BOLD, BaseColor.BLACK);
            iTextSharp.text.Font fontBody = FontFactory.GetFont("Arial", 14, iTextSharp.text.Font.BOLD, BaseColor.BLACK);

            Console.WriteLine("");

            Paragraph titulo = new Paragraph("ORDEN DE PRESTACION DE SERVICIO: " + LNroOrden.Text, fontTitle);
            titulo.Alignment = Element.ALIGN_JUSTIFIED;


            doc.Open();
            iTextSharp.text.Image logo = iTextSharp.text.Image.GetInstance(imagepath + "/logoaf.png");
            doc.Add(logo);
            doc.Add(titulo);
            doc.Add(new Paragraph("  "));
            doc.Add(new Paragraph("  "));
            doc.Add(new Paragraph("  "));
            doc.Add(new Paragraph("Numero de presupuesto: " + Label1.Text, fontHead));
            doc.Add(new Paragraph(" "));
            doc.Add(new Paragraph("-----------------------------------------------------------------------------------  "));
            doc.Add(new Paragraph(" "));
            doc.Add(new Paragraph("Empresa: " + Label2.Text));
            doc.Add(new Paragraph("CUIT: " + Label3.Text));
            doc.Add(new Paragraph(" "));
            doc.Add(new Paragraph("Fecha de Presupuesto: " + Label6.Text));
            doc.Add(new Paragraph("Fecha de Aprobacion: " + Label8.Text));
            doc.Add(new Paragraph("Fecha de Validez: " + Label7.Text));
            doc.Add(new Paragraph(" "));
            doc.Add(new Paragraph("Detalle: " + Label4.Text));
            doc.Add(new Paragraph("                                                    Importe:  $ " + Label5.Text));
            doc.Add(new Paragraph("-----------------------------------------------------------------------------------"));

            doc.Close();

            GridView1.SelectedRow.Enabled = false;

            Response.ContentType = "application/pdf";
            Response.AddHeader("Content-Disposition", "attachment;filename=orden" + LNroOrden.Text + ".pdf");
            Response.TransmitFile(Server.MapPath("~/") + "orden" + LNroOrden.Text + ".pdf");


            this.DSPresupuesto2.UpdateParameters["estado"].DefaultValue = this.Label9.Text;
            this.DSPresupuesto2.Update();

        }
       
       }



    protected void Button3_Click(object sender, EventArgs e)
    {
        Response.Redirect("MenuServicios.aspx");
    }


    protected void Button4_Click(object sender, EventArgs e)
    {
        
    }
    protected void Button5_Click(object sender, EventArgs e)
    {
        Response.Redirect("frmPrestacionDeServicios.aspx");
    }



    protected void Button8_Click(object sender, EventArgs e)
    {
        Response.Redirect("frmListaDeOrdenesPrestacion.aspx");
    }
}